/**
 * 统一表单校验
 * 1.分组用法 ref="abc#mobile",传递传递 abc, 就只校验前缀为 abc 的 ref
 * @param {需要校验的分组,用#号分割} group
 */
let hdCheckForm = function(...group) {
  // 获取需要校验的表单
  let refs = this.$refs
  let checkObject = {}
  // 如果有分组信息, 进行分类设置, 如果没有设置分类信息, 就全局校验
  if (group) {
    group.forEach(itemGroup => {
      for (let item in refs) {
        if (item.split('#')[0] === itemGroup) {
          checkObject[item] = refs[item]
        }
      }
    })
  } else {
    checkObject = refs
  }
  // 如果表单校验为空 则返回 true
  if (checkObject) {
    for (let item in checkObject) {
      if (!checkObject[item].valid) {
        this.$dialog.toast({mes: checkObject[item].errorMsg})
        return false
      }
    }
  } else {
    console.warn('表单校验为空,1.请检查表单校验方法[分组]参数是否传递正确! 2.组件中是否存在 ref 属性')
    return false
  }
  return true
}

export default hdCheckForm
